home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.Image;
-
- public class TumbleItem extends Applet implements Runnable {
- int loopslot;
- String dir;
- Thread kicker;
- int pause;
- int offset;
- int off;
- int speed;
- int nimgs;
- Image[] imgs;
- int maxWidth;
-
- public void init() {
- String var1 = ((Applet)this).getParameter("img");
- this.dir = var1 != null ? var1 : "images/tumble";
- var1 = ((Applet)this).getParameter("pause");
- this.pause = var1 != null ? Integer.valueOf(var1) : 3900;
- var1 = ((Applet)this).getParameter("offset");
- this.offset = var1 != null ? Integer.valueOf(var1) : 0;
- var1 = ((Applet)this).getParameter("speed");
- this.speed = var1 != null ? 1000 / Integer.valueOf(var1) : 100;
- var1 = ((Applet)this).getParameter("nimgs");
- this.nimgs = var1 != null ? Integer.valueOf(var1) : 16;
- var1 = ((Applet)this).getParameter("maxwidth");
- this.maxWidth = var1 != null ? Integer.valueOf(var1) : 0;
- }
-
- public void run() {
- Thread.currentThread().setPriority(4);
- this.imgs = new Image[this.nimgs];
-
- for(int var1 = 1; var1 < this.nimgs; ++var1) {
- this.imgs[var1] = ((Applet)this).getImage(((Applet)this).getDocumentBase(), this.dir + "/T" + var1 + ".gif");
- }
-
- Dimension var2 = ((Component)this).size();
- if (this.nimgs > 1) {
- if (this.offset < 0) {
- this.off = var2.width - this.maxWidth;
- }
-
- while(this.kicker != null) {
- if (++this.loopslot >= this.nimgs) {
- this.loopslot = 0;
- this.off += this.offset;
- if (this.off < 0) {
- this.off = var2.width - this.maxWidth;
- } else if (this.off + this.maxWidth > var2.width) {
- this.off = 0;
- }
- }
-
- ((Component)this).repaint();
-
- try {
- Thread.sleep((long)(this.speed + (this.loopslot == this.nimgs - 1 ? this.pause : 0)));
- } catch (InterruptedException var3) {
- return;
- }
- }
- }
-
- }
-
- public boolean imageUpdate(Image var1, int var2, int var3, int var4, int var5, int var6) {
- if ((var2 & 56) != 0 && this.imgs != null && this.loopslot < this.nimgs && this.imgs[this.loopslot] == var1) {
- ((Component)this).repaint(100L);
- }
-
- return (var2 & 96) == 0;
- }
-
- public void paint(Graphics var1) {
- if (this.imgs != null && this.loopslot < this.nimgs && this.imgs[this.loopslot] != null) {
- var1.drawImage(this.imgs[this.loopslot], this.off, 0, this);
- }
-
- }
-
- public void start() {
- if (this.kicker == null) {
- this.kicker = new Thread(this);
- this.kicker.start();
- }
-
- }
-
- public void stop() {
- if (this.kicker != null) {
- this.kicker.stop();
- this.kicker = null;
- }
-
- }
- }
-